package com.bestcem.xm.ticket.grpc.client.dto.survey;

import com.bestcem.xm.ticket.grpc.client.enums.RespondentClientTypeEnum;
import com.bestcem.xm.ticket.grpc.client.enums.survey.RespondentDataStatusEnum;
import com.bestcem.xm.ticket.grpc.client.enums.survey.RespondentSourceEnum;
import com.bestcem.xm.ticket.grpc.client.enums.survey.RespondentStatusEnum;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 获取添加额外参数数据的 Respondent DTO
 *
 * @author zq.ding <zq.ding@idiaoyan.com>
 * @version v1.0
 * @date 2021/8/31 14:57
 */
@Data
public class FilledRespondentInfoDTO {

    /**
     * 答卷ID
     */
    String id;

    /**
     * 问卷ID
     */
    String projectId;

    /**
     * 数据状态
     *
     * @see RespondentDataStatusEnum
     */
    Integer dataStatus;

    /**
     * 答卷状态
     *
     * @see RespondentStatusEnum
     */
    Integer respondentStatus;

    /**
     * 废弃前的状态，用于恢复
     */
    Integer preDiscardStatus;

    /**
     * 答卷序号
     */
    Integer seq;

    /**
     * 是否转换
     */
    Boolean parsed;

    /**
     * 答卷版本
     */
    Integer version;

    /**
     * 数据来源
     *
     * @see RespondentSourceEnum
     */
    Integer source;

    /**
     * 答卷归属ID
     */
    String groupId;

    /**
     * 答卷归属编码
     */
    String groupCode;

    /**
     * 答题人ID
     */
    String userId;

    /**
     * HTTP userAgent头部信息
     */
    String userAgent;

    /**
     * 答题终端类型
     *
     * @see RespondentClientTypeEnum
     */
    Integer clientType;

    /**
     * 开始答题时间
     */
    LocalDateTime startTime;

    /**
     * 结束答题时间
     */
    LocalDateTime endTime;

    /**
     * respondent_data_id
     */
    String dataId;

    /**
     * rspdWeixinId
     */
    String weixinId;

    /**
     * respondent_location_id
     */
    String locationId;

    /**
     * respondent_extra_id
     */
    String extraId;

    /**
     * respondent_attachment_id
     */
    String attachmentId;

    /**
     * 外部系统的seq
     */
    String extSeq;

    /**
     * 提交序列
     */
    Integer submitSeq;

    /**
     * 答题IP
     */
    String ip;
    /**
     * ip城市
     */
    String ipCountry;

    /**
     * ip省份
     */
    String ipProvince;

    /**
     * ip城市
     */
    String ipCity;

    /**
     * 备注
     */
    String comment;

    /**
     * 联系人id
     */
    String memberId;

    /**
     * 当前语言
     */
    String currentLang;

    /**
     * 投放id
     */
    String deliverId;

    /**
     * 投放组id
     */
    String deliverGroupId;

    /**
     * 二次投放记录id
     */
    String againDeliverRecordId;

    /**
     * 该样本所有的配额项集合
     */
    List<String> quotaCheckItems;

    /**
     * 记录创建时间
     */
    LocalDateTime createTime;

    /**
     * 预生成csv状态标记
     */
    Boolean excelParsed;

    /**
     * surveyGids
     */
    List<Integer> surveyGids;

    /**
     * 用户微信信息
     */
    String wxUserInfo;

    /**
     * 专用链接投放专用码
     */
    String deliverCode;
    /**
     * 样本投放survey_union拼接上的参数
     */
    String idySurveyUnionId;

    /**
     * 总分
     */
    Double score;

    /**
     * Required 耗时
     */
    Integer costTime;

    /**
     * Required 浏览器
     */
    String browser;

    /**
     * Required 操作系统
     */
    String os;

    /**
     * Required 层级名
     */
    String group;

    /**
     * Required 成员姓名
     */
    String memberName;

    /**
     * Required 成员信息
     */
    String memberInfo;

    /**
     * Required 投放来源
     */
    String deliverSource;

    /**
     * Required 投放方式
     */
    String deliverChannel;
}
